const fs = require('fs'); // fs 是 node的核心模块，安装时注意不要用最新的版本，问题比较多
/**
 * node是主线程是单线程，其他线程不一定是单线程
 *
 *
 */

function after(times, callback) {
  let arr = []; // 目前先不关心顺序
  let obj = {}; // 能保证顺序
  return (data, index) => {
    // arr.push(data);
    obj[index] = data;
    // 多个请求并发， 需要靠计数器来实现
    if (--times === 0) {
      // callback(arr);
      callback(obj);
    }
  };
}

let out = after(2, arr => {
  console.log(arr);
});

fs.readFile('./a.txt', 'UTF8', function (err, data) {
  out(data, 0);
});

fs.readFile('./b.txt', 'UTF8', function (err, data) {
  out(data, 1);
});

// 升级写法：发布订阅模式：，注：先订阅-》再发布
